#coding=utf-8
#!python.exe

import sys

def info(object, spacing=10, collapse=1):   
    """Print methods and doc strings.
    
    Takes module, class, list, dictionary, or string."""
    
    
    methodList = [method for method in dir(object) if callable(getattr(object, method))]
    processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
    
    print "\n".join(["--'%s'--\n%s" % 
                      (
                      method.ljust(spacing),
                      processFunc(str(getattr(object, method).__doc__))
                       )
                     for method in methodList]
                     
                     )
    return methodList

if __name__ == "__main__":                 
    print info.__doc__
    li = []
    
    print 'start-------------------------------'
    ret_val = info(sys);
    print 'end-------------------------------'
    print "\n".join(ret_val)